hvm: Fix 'xm save' bug in qhich qemu-dm ignores SIGTERM.
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 1 Feb 2008 12:01:34 +0000 (12:01 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 1 Feb 2008 12:01:34 +0000 (12:01 +0000)
commitef532054c0de7c4a548e0124b42acf9477f580d5
tree73e8e86e54a830bb32e9634e8d36e2c3f3bc4523
parent9ea53031203037bf8ae43f72465f1df93fdc234a
hvm: Fix 'xm save' bug in qhich qemu-dm ignores SIGTERM.

When saving a guest in early ChangeSet (Before 16750), Xend will
send "SIGKILL" signal to kill qemu process. But in ChangeSet 16750,
the signal is modified to "SIGTERM". However, "SIGTERM" handler has
been registered by SDL in qemu. So when qemu process receives a
"SIGTERM", SDL will catch it and it will push out a "SDL_QUIT" even to
qemu. If qemu can receive that event, it will be successfully
terminated. While we do "xm save", qemu can't go out from the dead
loop "while (suspend_requested) {...}" in main_loop() to handle the
SQL_QUIT event. So it is unable to poll that "SDL_QUIT" event. This
makes xm save command hang. This fix enables qemu to poll the
"SDL_QUIT" event while doing save.

Signed-off-by: Xu Dongxiao <dongxiao.xu@intel.com>
tools/ioemu/target-i386-dm/helper2.c